This document might be outdated relative to the documentation in English. For the latest updates, please refer to the documentation in english.

Entregando arquivos estáticos no Express

Para entregar arquivos estáticos como imagens, arquivos CSS, e arquivos JavaScript, use a função de middleware express.static integrada no Express.

The function signature is:

express.static(root, [options])

The root argument specifies the root directory from which to serve static assets. For more information on the options argument, see express.static.

Por exemplo, use o código a seguir para entregar imagens, arquivos CSS, e arquivos JavaScript em um diretório chamado public:

app.use(express.static('public'))

Agora, é possível carregar os arquivos que estão no diretório public:

http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html
O Express consulta os arquivos em relação ao diretório estático, para que o nome do diretório estático não faça parte da URL.

Para usar vários diretórios de ativos estáticos, chame a função de middleware express.static várias vezes:

app.use(express.static('public'))
app.use(express.static('files'))

O Express consulta os arquivos na ordem em que você configurar os diretórios estáticos com a função de middleware express.static.

Note

For best results, use a reverse proxy cache to improve performance of serving static assets.

To create a virtual path prefix (where the path does not actually exist in the file system) for files that are served by the express.static function, specify a mount path for the static directory, as shown below:

app.use('/static', express.static('public'))

Agora, é possível carregar os arquivos que estão no diretório public a partir do prefixo do caminho /static.

http://localhost:3000/static/images/kitten.jpg
http://localhost:3000/static/css/style.css
http://localhost:3000/static/js/app.js
http://localhost:3000/static/images/bg.png
http://localhost:3000/static/hello.html

Entretanto, o caminho fornecido para a função express.static é relativa ao diretório a partir do qual você inicia o seu node de processo. Se você executar o aplicativo express a partir de outro diretório, é mais seguro utilizar o caminho absoluto do diretório para o qual deseja entregar.

const path = require('path')
app.use('/static', express.static(path.join(__dirname, 'public')))

For more details about the serve-static function and its options, see serve-static.

Previous: Basic Routing     Next: More examples

Edit this page